There has been a technology that synchronizes data among a plurality of storage apparatuses. When data is synchronized among a plurality of storage apparatuses, even if a storage apparatus causes a failure and data is thereby lost in the storage apparatus, the same data as the lost data remains stored in other storage apparatuses, making it possible to suppress the data from being lost. Particularly in data centers and other locations at which data is collected, it has been conventional practice to copy data stored in a data center to other data centers. There has been also a technology that synchronizes data among a plurality of storage apparatuses.
For example, synchronized data may be stored in a plurality of data centers among which data is synchronized. Then, when data is to be accessed, it is possible to appropriately select a data center that achieves the fastest access to the data by using a personal computer (PC) or another information processing apparatus that has a wireless communication function.
However, the conventional technologies are problematic in that when data is to be synchronized among two storage apparatuses or more, the data to be synchronized may have an inconsistency depending on a difference in a time of the day at which a data change is carried out in each storage apparatus and a time taken to transmit data used for synchronization.
For example, a terminal may create two different data change requests, each of which requests data to be changed, for each of two different storage apparatuses. Each of the two different storage apparatuses receives the relevant data change request and reflects new data in the other storage apparatuses in which data is to be synchronized. However, it is difficult for the other storage apparatuses in which data is to be synchronized to determine which data change request has arrived first, that is, to identify times of the day at which the data change requests arrived.
FIG. 18 illustrates a specific example, in which data centers A to D synchronously store data 1. It is assumed that, as illustrated in FIG. 18, it takes 2.0 seconds to transmit data from data center A to data center C, it takes 6.0 seconds to transmit data from data center A to data center D, it takes 6.0 seconds to transmit data from data center B to data center C, it takes 2.0 seconds to transmit data from data center B to data center D, and it takes 4.0 seconds to transmit data from data center A to data center B or to transmit data from data center B to data center A.
It is also assumed here that a data change request to change data 1 to data 2 was created for data center A at 9:00:00 and that a data change request to change data 1 to data 3 was created for data center B at 9:00:02. In this case, since the data change request to change to data 3 was created after the data change request to change to data 2, data 1 is expected to have been changed to data 3 at data centers A to D after these data change requests had been reflected.
However, data center D first receives the data change request created for data center B. If data center D changes data in the order of data reception, therefore, data 2 is stored as the latest data. This is also true for data center B. As a result, data stored in data centers A to D causes inconsistencies, so it is difficult to apply to the conventional technologies to an aspect in which a terminal selects any data center to access data.